home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
A Teacher's Guide to the Holocaust
/
A Teacher's Guide to the Holocaust.iso
/
data
/
people
/
scripts
/
elemtextclass.js
< prev
next >
Wrap
Text File
|
1999-12-05
|
5KB
|
198 lines
// Copyright 1998,1999 Macromedia, Inc. All rights reserved.
//Constructs a text entry element
function MM_text(theParent, theName, theInitialValue) {
// properties
this.initialValue = theInitialValue?theInitialValue:'';
this.value = null;
this.disabled = true;
this._parent = theParent;
this._name = theName;
this._obj = '';
this.c = new Array();
// member functions
this.init = MM_textInit;
this.reset = MM_textReset;
this.enable = MM_textEnable;
this.disable = MM_textDisable;
this.setDisabled = MM_textSetDisabled;
this.update = MM_textUpdate;
this.redraw = MM_textRedraw;
this.setValue = MM_textSetValue;
this.focus = MM_textFocus;
}
//Initializes the element
function MM_textInit() {
with (this) _obj = MM_intFindObject(_parent._self + _name + "Inp");
}
//Resets the element
function MM_textReset() {
with (this) {
_parent.disabled ? disable() : enable();
setValue(initialValue);
}
}
//Enables the element
function MM_textEnable() {
var i;
if (this._obj) with (this) {
disabled = false;
for (i in c) if (i != 'length') c[i].disabled = false;
setValue(_obj.value);
}
}
//Disables the element
function MM_textDisable() {
this.disabled = true;
this.redraw();
}
//Calls the approppriate disable or enable function
function MM_textSetDisabled(theDisabled) {
if (theDisabled) this.disable();
else this.enable();
}
//Called by onClick event to update this elements value
//We also store the object reference of the control, so that
// we can reset it later.
function MM_textUpdate() {
var isChanged = '';
if (!this.disabled) with (this) {
_obj.value = MM_textStripSpaces(_obj.value);
isChanged = (value != _obj.value);
value = _obj.value;
for (var i in c) if (i != 'length') c[i].validValue();
if (isChanged && this.onChange != null) onChange(_parent._self+_name, value);
_parent.update(); // call the parent's update
}
}
// Sets the text value
function MM_textRedraw() {
if (this._obj) with (this) {
if (_obj.disabled != null) _obj.disabled = disabled;
if (_obj.value != null) _obj.value = value;
}
}
function MM_textSetValue(theValue) {
var isChanged = '';
with (this) {
theValue = MM_textStripSpaces(theValue);
isChanged = (value != theValue);
value = theValue;
redraw();
for (var i in c) if (i != 'length') c[i].validValue();
if (isChanged && this.onChange != null) onChange(_parent._self+_name, value);
_parent.update(true); // update int, no judge
}
}
function MM_textFocus() {
if (this.disabled) with (this._parent)
if (browserIsNS && browserVersion >= 4.0 && osIsWindows) this._obj.blur();
}
//////////////////////////////////////////
//Create a string choice object
function MM_textComp(theParent, theElement, theName,
theExpectedValue, theIsCorrect, theScore,
theMatchCase, theMatchAll)
{
// properties
this.expectedValue = theExpectedValue;
this.isCorrect = theIsCorrect;
this.score = theScore;
this.selected = false;
this.disabled = false;
this.matchCase = theMatchCase;
this.matchAll = theMatchAll;
this._elem = eval(theParent._self+".e['"+theElement+"']");
this._isChoice = true;
// methods
this.validValue = MM_textCompValidValue;
this.setSelected = MM_textCompSetSelected;
this.setDisabled = MM_textCompSetDisabled;
this.deencrypt = MM_textDeencrypt;
}
function MM_textCompValidValue() {
var theValue, expValue;
with (this) {
selected = false;
if (!disabled) {
theValue = _elem.value;
expValue = deencrypt(expectedValue);
if (!matchCase) {
theValue = theValue.toUpperCase();
expValue = expValue.toUpperCase();
}
if (theValue != '') {
if (matchAll) selected = (theValue == expValue);
else selected = (theValue.indexOf(expValue) != -1);
} } }
return this.selected;
}
function MM_textCompSetSelected(theSelected) {
with (this) {
if (theSelected) {
_elem.setValue(deencrypt(expectedValue));
} else {
selected = false;
_elem._parent.update(true); // update int, no judge
} }
}
function MM_textCompSetDisabled(theDisabled) {
with (this) {
disabled = theDisabled;
validValue();
_elem._parent.update(true); // update interaction, no judge
}
}
function MM_textDeencrypt(theStr) {
var decipher='',i,key,clength,part='-###-',keyOffsetObscure,keyOffset='',hyphen;
if (theStr.indexOf(part)!=-1) {
strStart = theStr.indexOf(part)+part.length;
hyphen=theStr.indexOf('-');
key = theStr.substring(0,hyphen);
keyOffsetObscure=theStr.substring(hyphen+1, theStr.indexOf('-',hyphen+1));
for (i=keyOffsetObscure.length-1;i>=0;i--)
keyOffset+=keyOffsetObscure.charAt(i);
clength = key-keyOffset;
retVal = theStr.substring(strStart, theStr.length);
for (i=0;i<retVal.length;i+=(clength+1))
decipher=decipher+retVal.charAt(i);
retVal = decipher;
}
else retVal = theStr;
return retVal;
}
function MM_textStripSpaces(theStr) {
var c,b=0,e=theStr.length-1,E=e;
while (b<E&&((c=theStr.charAt(b))==" " || c=="\r" || c=="\n")) b++;
while (e>0&&((c=theStr.charAt(e))==" " || c=="\r" || c=="\n")) e--;
return theStr.substring(b,e+1);
}